package com.demo;

import java.sql.*;
//import java.sql.Driver;


public class 使用JDBC操作数据库的六步 {
    public static void main(String[] args) {
        //定义全局变量，方便释放资源。
        Statement statement = null;//
        Connection connection = null;//创建一个Connection型变量（连接数据库的类型）
        try {

            //第一步：注册驱动
            Driver driver = new com.mysql.cj.jdbc.Driver();//MySQL8.0.23的注册方法，从包名开始创建一个Driver实现类的对象

            DriverManager.registerDriver(driver);//注册给定的驱动程序DriverManager。利用这个对象去注册驱动

            //第二步：获取链接对象
            String url = "jdbc:mysql://localhost:3306/xclmf";
            //用”jdbc:mysql://“协议，找到“127.0.0.1”IP位置的电脑，连接该电脑上的“3306”端口软件(一般都是数据库系统管理软件，MySQLyog)，再连接MySQLyog里面的“xclmf”数据库
            //url=协议（jdbc:mysql://）+IP地址（127.0.0.1）+端口号（3306）+具体资源（xclmf，数据库名）
            //IP地址与端口号之间用冒号隔开
            //不同数据库之间的通信协议不同，上面的是MySQL的通信协议
            String user = "root";//连接的数据库，用户名
            String password = "552200";//连接的数据库，密码

            //调用getConnection方法，去连接数据库。返回值是Connection的
            connection = DriverManager.getConnection(url, user, password);
            System.out.println("数据库连接对象：" + connection);

            //第三步：获取sql对象
            statement = connection.createStatement();//创建一个可以去执行sql语句的对象

            //第四步：执行sql语句
            //将sql语句封装在String型变量中
            //String str = "insert into books_4 values(02,'雷军',89.0,83,NOW()),(03,'拜登',82.0,65,NOW())" ;
            String str = "delete from books_4 where id in(2,3)";

            //调用Statement类中的特有方法，执行sql语句，并返回一个整型数据，即MySQL中有几行受影响
            int count = statement.executeUpdate(str);
            if (count != 0) {
                System.out.println("执行成功！");
            } else {
                System.out.println("执行失败！");
            }

            //第五步：处理查询结果集

        } catch (Exception e) {
            System.out.println("出错！");

        } finally {
            //第六步：释放资源
            try {
                if (statement != null) {
                    statement.close();
                }
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
            try {
                if (connection != null) {
                    connection.close();
                }
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }


        }
    }
}
